package com.gdssoft.pdaweb.service.ws;

import javax.jws.WebParam;
import javax.jws.WebService;

@WebService(targetNamespace="http://gdssoft.foxconn.com/")
public interface PdaService {
	
	/**
	 * 验证登入
	 * @param username 账号
	 * @param password 密码
	 * @param macAddress 设备Mac地址，注册设备时填写的Mac地址
	 * @return
	 */
	long  verifyAuth (
			@WebParam(name="username")String username, 
			@WebParam(name="password")String password, 
			@WebParam(name="macAddress")String macAddress
	);
	
	/**
	 * 
	 * @param username 账号
	 * @param oldPassword 旧密码
	 * @param newPassword 新密码
	 * 
	 * @return
	 */
	boolean modifyPassword(
			@WebParam(name="username")String username, 
			@WebParam(name="oldPassword")String oldPassword, 
			@WebParam(name="newPassword")String newPassword
	);
	
	/**
	 * 取得pda-app当前最新的版本号
	 * @return
	 */
	String getAppVersion();

	String listWorkOrder(
			@WebParam(name="dutyPerson")String dutyPerson
	);
	/**
	 * 根据账号取得客服工单的列表
	 * @param activityUID 工单号
	 * @param workStatus 状态
	 * @param contactsPerson 联络人
	 * @param contactsPhone 联络人电话
	 * @param description 问题描述
	 * @param completionDateFrom 完成时间-起始
	 * @param completionDateTo 完成时间-截止
	 * @param dutyPerson 账号
	 * @return 客服工单对象列表的Json格式字符串
	 */
	String queryWorkOrder(
			@WebParam(name="activityUID")String activityUID,
			@WebParam(name="workStatus")String workStatus, 
			@WebParam(name="contactsPerson")String contactsPerson,
			@WebParam(name="contactsPhone")String contactsPhone,
			@WebParam(name="description")String description,
			@WebParam(name="completionDateFrom")String completionDateFrom,
			@WebParam(name="completionDateTo")String completionDateTo,
			@WebParam(name="dutyPerson")String dutyPerson
	);
	
	/**
	 * 更新客服工单的状态
	 * @param activityUID 工单号
	 * @param workStatus 状态
	 * @param plannedCompletion 完成时间
	 * @param comment 留言备注
	 * @return
	 */
	boolean updateWorkOrder(@WebParam(name="activityUID")String activityUID,
			@WebParam(name="workStatus")String workStatus, 
			@WebParam(name="plannedCompletion")String plannedCompletion, 
			@WebParam(name="comment")String comment, 
			@WebParam(name="updatePerson")String updatePerson
	);

	String listCheckWorkOrder(
			@WebParam(name="dutyPerson")String dutyPerson
	);	
	/**
	 * 根据账号取得巡检工单的列表
	 * @param workStatus 工作状态
	 * @param completionDateFrom 完成时间-起始
	 * @param completionDateTo 完成时间-截止
	 * @param dutyPerson 账号
	 * @return
	 */
	String queryCheckWorkOrder(
			@WebParam(name="workStatus")String workStatus, 
			@WebParam(name="completionDateFrom")String completionDateFrom,
			@WebParam(name="completionDateTo")String completionDateTo,
			@WebParam(name="dutyPerson")String dutyPerson
	);	
	/**
	 * 更新巡检工单的状态
	 * @param assignmentId 巡检工单唯一标识
	 * @param workStatus 工作状态
	 * @param workComment 留言备注
	 * @param completionDate 完成日期
	 * @param updatePerson 更新人
	 * @param beginTime  工单开始时间
	 * @param endTime    工单结束时间
	 * @return
	 */
	boolean updateCheckWorkOrder(@WebParam(name="assignmentId")String assignmentId,
			@WebParam(name="workStatus")String workStatus, 
			@WebParam(name="workComment")String workComment,
			@WebParam(name="completionDate")String completionDate, 
			@WebParam(name="updatePerson")String updatePerson,
			@WebParam(name="beginTime")String beginTime,
			@WebParam(name="endTime")String endTime
	);
	/**
	 * 取得巡检工单任务列表
	 * @param assignmentId 巡检工单唯一标识
	 * @return 
	 */
	String listCheckTaskByAssignmentId(
			@WebParam(name="assignmentId")String assignmentId
	);
	/**
	 * 更新巡检工单任务的状态
	 * @param assignmentId 巡检工单唯一标识
	 * @param taskId 巡检工单任务Id
	 * @param status 状态
	 * @param completionDate 完成日期
	 * @param updatePerson 更新人
	 * @return
	 */
	boolean updateCheckTask(@WebParam(name="assignmentId")String assignmentId,
			@WebParam(name="taskId")String taskId,
			@WebParam(name="status")String status, 
			@WebParam(name="completionDate")String completionDate, 
			@WebParam(name="updatePerson")String updatePerson
	);

	String listRepairWorkOrder(
			@WebParam(name="dutyPerson")String dutyPerson
	);
	/**
	 * 根据账号取得维修工单的列表
	 * @param workOrderNo 工单号
	 * @param workStatus 状态
	 * @param assetNo 资产编号
	 * @param completionDateFrom 完成时间-起始
	 * @param completionDateTo 完成时间-截止
	 * @param dutyPerson 账号
	 * @return
	 */
	String queryRepairWorkOrder(
			@WebParam(name="workOrderNo")String workOrderNo,
			@WebParam(name="workStatus")String workStatus, 
			@WebParam(name="assetNo")String assetNo,
			@WebParam(name="completionDateFrom")String completionDateFrom,
			@WebParam(name="completionDateTo")String completionDateTo,
			@WebParam(name="dutyPerson")String dutyPerson
	);
	/**
	 * 更新维修工单的状态
	 * @param assignmentId 工单唯一标识
	 * @param workStatus 工作状态
	 * @param workComment 留言备注
	 * @param completionDate 完成日期
	 * @param updatePerson 更新人
	 * @param beginTime   工单开始时间
	 * @param endTime  工单结束时间
	 * @return
	 */
	boolean updateRepairWorkOrder(@WebParam(name="assignmentId")String assignmentId,
			@WebParam(name="workStatus")String workStatus, 
			@WebParam(name="workComment")String workComment,
			@WebParam(name="updatePerson")String updatePerson,
			@WebParam(name="beginTime")String beginTime,
			@WebParam(name="endTime")String endTime
	);

	/**
	 * 根据账号取得抄水表工单的列表
	 * @param dutyPerson 账号
	 * @return
	 */
	String listWatermeterReadingWorkOrder(
			@WebParam(name="dutyPerson")String dutyPerson
	);
	/**
	 * 根据账号取得抄水表计划的列表
	 * @param dutyPerson 账号
	 * @return
	 */
	String listWaterMeterPlan(
			@WebParam(name="dutyPerson")String dutyPerson
	);

	/**
	 * 根据账号取得抄水表工单的列表
	 * @param meterNo 表编号
	 * @param houseId 房屋编号
	 * @param completionDateFrom 完成时间-起始
	 * @param completionDateTo 完成时间-截止
	 * @param dutyPerson 账号
	 * @return
	 */
	String queryWatermeterReadingWorkOrder(
			@WebParam(name="meterNo")String meterNo,
			@WebParam(name="houseId")String houseId,
			@WebParam(name="completionDateFrom")String completionDateFrom,
			@WebParam(name="completionDateTo")String completionDateTo,
			@WebParam(name="dutyPerson")String dutyPerson
	);
	/**
	 * 更新抄水表工单的状态
	 * @param mprId 
	 * @param meterDegree 表读数
	 * @param completionDate 抄表时间
	 * @param updatePerson 更新人
	 * @return
	 */
	boolean updateWatermeterReadingWorkOrder(@WebParam(name="mprId")String mprId,
			@WebParam(name="meterDegree")String meterDegree, 
			@WebParam(name="completionDate")String completionDate, 
			@WebParam(name="updatePerson")String updatePerson
	);
    /**
     * 根据账号取得抄电表工单的列表
     * @param dutyPerson 账号
     * @return
     */
	String listAmmeterReadingWorkOrder(
			@WebParam(name="dutyPerson")String dutyPerson
	);
	/**
     * 根据账号取得抄电表计划列表
     * @param dutyPerson 账号
     * @return
     */
	String listAmMeterMonthPlan(
			@WebParam(name="dutyPerson")String dutyPerson
	);
	/**
	 * 根据账号取得抄电表工单的列表
	 * @param meterNo 表编号
	 * @param completionDateFrom 完成时间-起始
	 * @param completionDateTo 完成时间-截止
	 * @param dutyPerson 账号
	 * @param houseId 房号
	 * @return
	 */
	String queryAmmeterReadingWorkOrder(
			@WebParam(name="meterNo")String meterNo,
			@WebParam(name="houseId")String houseId,
			@WebParam(name="completionDateFrom")String completionDateFrom,
			@WebParam(name="completionDateTo")String completionDateTo,
			@WebParam(name="dutyPerson")String dutyPerson
			
	);
	/**
	 * 更新抄电表工单的状态
	 * @param mprId 
	 * @param meterDegree 表读数
	 * @param completionDate 抄表时间
	 * @param updatePerson 更新人
	 * @return
	 */
	boolean updateAmmeterReadingWorkOrder(@WebParam(name="mprId")String mprId,
			@WebParam(name="meterDegree")String meterDegree, 
			@WebParam(name="completionDate")String completionDate, 
			@WebParam(name="updatePerson")String updatePerson
	);
	/**
	 * 根据用户账号返回用户的所有角色
	 * @param username 账号
	 * @return 
	 */
	String listUserRoles(
			@WebParam(name="username") String userName
			);
	/**
	 * 根据资产条形码返回资产备品备件信息
	 * @param barCode资产条形码
	 * @return
	 */
    String listAttachment(
    		@WebParam(name="barcode") String barCode
    		);
    /**
     * 
     * @param assignmentId  维修工单唯一标识
     * @param woNum   资产编号
     * @param barCode 资产条码
     * @param account 操作人
     * @param detail  详细信息
     * @return
     */
    boolean insertMaterial(
    		@WebParam(name="assignmentId") String assignmentId,
    		@WebParam(name="wonum") String woNum,
    		@WebParam(name="barcode") String barCode,
    		@WebParam(name="account") String account,
    		@WebParam(name="detail") String detail
    		);
    // yuejun 2013/5/21
    /**
     * 
     * @param barCode 资产条码
     * @param recordeId  报修人
     * @param applyTime 报修时间
     * @param remark 备注
     * @param reason 报修原因
     * @param isSynchro 是否已同步至EAM
     * @param createdBy 创建人
     * @param lacotedId 位置编号
     * @param workStatus 工单状态（0表示现成工单，1表示报修申请）
     * @param estdur 持续时间
     * @return
     */
    boolean insertApplyRepair(
    		@WebParam(name="Barcode") String barCode,
    		@WebParam(name="ReordeId") String recordeId,
    		@WebParam(name="ApplyTime") String applyTime,
    		@WebParam(name="Remark") String remark,
    		@WebParam(name="Reason") String reason,
    		@WebParam(name="lacotedId") String lacotedId,
    		@WebParam(name="workStatus") String workStatus,
    		@WebParam(name="estdur") String estdur
    		);
    
}
